#ifndef __FRAME_TOOLS_H__
#define __FRAME_TOOLS_H__

#include "IFrameTools.h"

class CFrameTools: public virtual IFrameTools
{
public:
	const bool LoadInstance(IKernel * ptrKernel);

public:
	ILog & Log();
	ISysFun & SysFun();
	IStrFun & StrFun();
	ILockSet & LockSet();
	IGui & Gui();
	IClient & Client();
	IQueueOperation & QueueOperation();
	IInterProcessCommunication & IPC();
	IThreadManager & ThreadManager();
	ITrigger * CreateTimer(const char * pszName);
	ITrigger * CreateSmper(const char * pszName);
	IData * CreateData(const char * pszBufer, const int iLen);
	IPacket * CreateJsonPacket(const char * pszBufer, const int iLen);
	ILock * CreateThreadLock();
	ILock * CreateProcessLock(const char * pszName);
private:
	const bool InitInstance(bool bFlg);

private:
	ILog * m_ptrLog;
	ISysFun * m_ptrSysFun;
	IStrFun * m_ptrStrFun;
	ILockSet * m_ptrLockSet;
	IGui * m_ptrGui;
	IClient * m_ptrClient;
	IThreadManager * m_ptrThreadManager;
	IQueueOperation * m_ptrQueueOperation;
	IInterProcessCommunication * m_ptrInterProcessCommunication;
};



#endif//__FRAME_TOOLS_H__

